function [common_part, private_part] = split_message(message, common_ratio)
% split_message - 将用户消息分割为公共部分和私有部分
%
% 输入参数:
%   message      - 用户原始消息(比特流)
%   common_ratio - 分配给公共部分的比例 (0-1)
%
% 输出参数:
%   common_part  - 分割出的公共部分
%   private_part - 分割出的私有部分

% 确保输入参数有效
if common_ratio < 0 || common_ratio > 1
    error('公共部分比例必须在0和1之间');
end

% 获取消息长度
message_length = length(message);

% 计算公共部分和私有部分的长度
common_length = round(message_length * common_ratio);
private_length = message_length - common_length;

% 分割消息
common_part = message(1:common_length);
private_part = message(common_length+1:end);

% 在实际系统中，不会简单地按位分割，而是考虑以下因素：
% 1. 用户之间的信道条件和干扰水平
% 2. QoS需求和优先级
% 3. 实时信道反馈信息
% 4. 最优化速率区域
% 5. 用户公平性考虑

% 这里为简化起见，我们使用简单的比例分割
end 